package com.nexgo.payment;

import com.nexgo.oaf.apiv3.emv.PromptEnum;
import com.nexgo.payment.entity.TransData;

import java.util.List;

/**
 * Created by xiaox on 2017/2/4.
 */

public interface BaseTransView<T> extends BaseView<T> {
    /**
     * 用户等待提示
     *
     * @param active   提示或消失
     * @param tipTitle
     * @param tip      提示语
     */
    void setWaitingIndicator(boolean active, String tipTitle, String tip);

    /**
     * 提示不支持交易
     */
    void showUnsupported();

    /**
     * 提示主管不能交易
     */
    void showAdminCantTrade();

    /**
     * 提示交易记录超限
     */
    void showTransRecordLimit();

    /**
     * 提示请先签到
     */
    void showLoginFirst();

    /**
     * 提示请完成批上送
     */
    void showBatchUploadFirst();

    /**
     * 提示错误信息
     */
    void showError(String message);

    /**
     * 提示交易失败
     */
    void showTransFailed();

    //lr add 提示连接失败
    void showConnectFailed();

    /**
     * 提示等待输入金额
     */
    void showInputAmount(TransData transData);

    /**
     * 提示等待读卡界面
     */
    void showReadCard(TransData transData);

    /**
     * 提示卡号确认
     */
    void showCardNoConfirm(TransData transData);

    /**
     * 提示输入pin
     */
    void showInputPin(TransData transData, boolean isOnlinePin, int leftTimes);

    /**
     * 提示选择aid 列表
     */
    void showSelApp(List<String> list);

    /**
     * 提示是否使用电子现金
     */
    void showConfirmEcSwitch();

    /**
     * 提示持卡人认证
     */
    void showCertVerify(String certName, String certInfo);

    /**
     * 联机
     *
     * @param transData
     * @param tip
     */
    void showOnlineProc(TransData transData, String tip);

    /**
     * 显示emv流程中的提示语
     *
     * @param prompt 提示语类型
     */
    void showEmvPrompt(PromptEnum prompt);

    /**
     * 电子签名
     *
     * @param signature
     */
    void showElectronicSignature(String signature);

    /**
     * 提示输入签名者手机号码
     */
    void showInputSignaturePhone();

    /**
     * 关闭输入框
     */
    void showDismissInputPhone();

    /**
     * 提示消息
     */
    void showToast(String message);

    /**
     * 显示结果并打印签购单
     */
    void showPrintReceipt();

    /**
     * 退出业务
     */
    void quitTrans();
}
